Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: TextBlock enters an infinite loop if the given available space is too small to fit even one character. #2598

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

net2cn
Copy link

@net2cn net2cn commented Jan 19, 2025

PR Details

If TextBlock is given an available space that the width is so small to fit in even one character, TextBlock will enter an infinite loop of repeatedly adding and removing the first character, and creating a new line in the wrapped text. This unexpected infinite loop will crash the editor due to a memory leak.

With this PR, the wrapped text will have at least one character (even if the character is zero width) from the original text in each new line.

Not wrapped

(Wrap Text option disabled, horizontal overflow)

Wrapped

(Wrap Text option enabled with the fix, horizontal wrapped with vertical overflow. Without this fix the engine will crash eventually given enough time)

Related Issue

Fixes #2514

Types of changes

  • Docs change / refactoring / dependency upgrade
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • My change requires a change to the documentation.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • I have built and run the editor to try this change out.

@net2cn
Copy link
Author

net2cn commented Jan 19, 2025

@dotnet-policy-service agree

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Stride TextBlock newline infinite loop and memory leak
1 participant